package fr.auzaiphe.admin.model;

import fr.auzaiphe.admin.constantes.ConstantesAdmin;
/**
 *
 * @author Hugp
 *
 * Evenement liés aux alertes
 */
public class EvtAlerte extends Evenement
{
	private Alerte alerte;

	public EvtAlerte (int pDate,
					  String pCouleur,
					  Alerte pAlerte)
	{
		super(pDate, pCouleur);
		this.alerte = pAlerte;
	}

	/**
	 * toString
	 * @return "[Heure :]
	 * 			[ConstantesAdmin.EVT_ALERTE_1]
	 * 			[[ConstantesAdmin.EVT_ALERTE_2 (si la cible est
	 * 			l'interface joueur non connecté)/ ConstantesAdmin.EVT_ALERTE_3 (si la cible est l'interface
	 * 			d'un joueur en particulier)/ Rien si l'admin est ciblé]]
	 * 			"[Les elements du texte du contenu de l'alerte compris entre le
	 * 			  ConstantesAdmin.EVT_ALERTE_SUBSTRING_DEBUT-ème et le
	 *   		  ConstantesAdmin.EVT_ALERTE_SUBSTRING_FIN-ème indice]..."
	 */
	@Override
	public String toString()
	{
		String result = new String();
		String textContent = this.alerte.getContenu().getTexte();
		result +=
			super.toString()+
			ConstantesAdmin.EVT_ALERTE_1+" ";
		if(this.alerte.isTargetingAll())
			result += ConstantesAdmin.EVT_ALERTE_2;
		else if (!this.alerte.isTargetingAll())
		{
			if(this.alerte.isTargetingAdmin())
			{
				result += ConstantesAdmin.EVT_ALERTE_3;
			}
			else
			{
				result += " "+ this.alerte.getCible().getNomPersonnage() +" "+ this.alerte.getCible().getPrenomPersonnage();
			}
		}
		result += " : "+textContent;
		/*
		if(textContent.length() < ConstantesAdmin.EVT_ALERTE_SUBSTRING_DEBUT)
			result +=
				(textContent.length() > ConstantesAdmin.EVT_ALERTE_SUBSTRING_FIN)?
						textContent.substring(0,textContent.length()):
						textContent.substring(0,ConstantesAdmin.EVT_ALERTE_SUBSTRING_FIN);
		else{
			System.out.println("Alerte :"+result);
			result +=
				(textContent.length() > ConstantesAdmin.EVT_ALERTE_SUBSTRING_FIN)?
						textContent.substring(ConstantesAdmin.EVT_ALERTE_SUBSTRING_DEBUT,textContent.length()):
						textContent.substring(ConstantesAdmin.EVT_ALERTE_SUBSTRING_DEBUT,ConstantesAdmin.EVT_ALERTE_SUBSTRING_FIN);
		}
		*/
		//result +="...\"";
		return result;
	}

	public Alerte getAlerte()
	{
		return this.alerte;
	}

	@Override
	public boolean equals(Evenement pEvt)
	{
		return
			(pEvt instanceof EvtAlerte) &&
			super.equals( pEvt ) &&
			((EvtAlerte) pEvt).getAlerte() == this.alerte;
	}

}
